package dao

import (
	"context"

	"catering_sys_api/cmd/api/model"
	"catering_sys_api/core/db"

	"gorm.io/gorm"
)

type StoreUserDao struct {
	ctx context.Context
}

func NewStoreUserDao(ctx context.Context) *StoreUserDao {
	return &StoreUserDao{ctx: ctx}
}

func (p *StoreUserDao) GetStoreUserByPhone(phone string) (storeUser model.StoreUser, err error) {
	err = db.DB.Model(model.StoreUser{}).Where("phone = ? ", phone).First(&storeUser).Error
	return
}

func (p *StoreUserDao) GetStoreUserByUserId(userId int) (storeUser model.StoreUser, err error) {
	err = db.DB.Model(model.StoreUser{}).Where("id = ? ", userId).First(&storeUser).Error
	return
}

func (p *StoreUserDao) UpdateStoreUser(storeUser model.StoreUser, db *gorm.DB) (err error) {
	err = db.Model(model.StoreUser{}).Where("id = ? ", storeUser.ID).Updates(map[string]interface{}{
		"phone":    storeUser.Phone,
		"password": storeUser.Password,
	}).Error
	return
}

func (p *StoreUserDao) AddStoreUser(storeUser *model.StoreUser, db *gorm.DB) (err error) {
	err = db.Create(storeUser).Error
	return
}
